package cn.siat.gene.service;

import cn.siat.gene.domain.DesignTBProjectMembers;
import cn.siat.gene.domain.dto.AddProjectMembersDto;
import cn.siat.gene.domain.dto.RemoveProjectMemberDto;

import java.util.List;
import java.util.Map;

/**
 * 项目成员Service接口
 * 
 * @author siat
 * @date 2022-10-08
 */
public interface IDesignTBProjectMembersService {

    /**
     * 查询项目成员列表
     * 
     * @param projectId 项目Id
     * @return 项目成员集合
     */
    public List<Map<String, String>> selectDesignTBProjectMembersList(String projectId);


    /**
     * 新增项目成员
     * 
     * @param addMembers 项目成员集合
     * @return 结果
     */
    public void insertDesignTBProjectMembers(AddProjectMembersDto addMembers);

    /**
     * 删除项目成员信息
     * 
     * @param removeMember
     * @return
     */
    public void deleteDesignTBProjectMembers(RemoveProjectMemberDto removeMember);

    /**
     * 查询项目成员列表
     *
     * @param projectId 项目唯一标识
     * @return 项目成员集合
     */
    public List<Map<String, String>> selectNonDesignTBProjectMembersList(String projectId);

    /**
     * 查询当前登录用户是否为指定项目成员
     */
    public Boolean isProjectMember(String projectId);

    /**
     * 更改项目成员权限
     *
     * @param map
     * @return
     */
    public void updatePermission(Map<String,String> map);

    /**
     * 查询指定项目成员
     *
     */
    public DesignTBProjectMembers selectMember(RemoveProjectMemberDto member);

    /**
     * 删除所有项目中指定userId的项目成员
     */
    public void deleteMember(String[] staffIds);
}
